#ifndef MOCKSHOWGUIINTERFACE_H
#define MOCKSHOWGUIINTERFACE_H


#include "IF_ShowGuiInterface.h"

/**
 * mock implementation of IF_ShowGuiInterface.
 * Here selected file names are decided by test SW and messages
 * to be notified are stored in a string list passes in constructor,
 * so that it survives after class distruction
 */
class MockShowGuiInterface : public IF_ShowGuiInterface
{
public:
   explicit MockShowGuiInterface( QStringList &notificationLog, const QString &saveFileName);

   // IF_ShowGuiInterface interface
public:
   virtual QString selectShowToOpen() const;
   virtual bool confirmShowFileLoad(const QString &errors) const;
   virtual QString selectShowToSave() const;
   virtual void notifyErrorMessage(const QString &title, const QString &errorString) const;
   virtual void showLoadingMessage();
   virtual void hideLoadingMessage();

   /* function for mocking */
   void mockFilenameForOpen( const QString & filename) {
      m_openFileName = filename;
   }

   void mockConfirmLoad( bool confirm) {
      m_confirm = confirm;
   }

private:
   QString m_openFileName; /**< return value of selectShowToOpen */
   QString m_saveFileName; /**< file that user would select by GUI to save show */
   bool m_confirm; /**< return value of confirmShowFileLoad */
   QStringList &m_notificationLog; /**< store all messages that would be notified to user */
};

#endif // MOCKSHOWGUIINTERFACE_H
